A communication network typically includes equipment from various vendors sending data and information among the equipment in the network. To promote interoperability among vendor equipment, an open systems interconnection (OSI) reference model is a widely accepted structure to provide a standard architecture for such interoperability. Models similar to an OSI reference model may include a physical layer at the lowest structure layer followed by a data link layer. Above the data link layer, the model may include higher order layers such as a network layer, a transport layer, a session layer, a presentation layer, and an application layer. The layers may also include sub-layers.
The physical layer deals with the transmission of bit streams over a physical medium. It also deals with the mechanical, electrical, functional, and procedural characteristics to access the physical medium. The data link layer deals with the reliable transfer of information across the physical layer. It also sends blocks or frames for synchronization, error control, and flow control. The data link layer may include a medium access control (MAC) layer and a logical link control layer (LLC). Functions of the MAC layer, or sub-layer, may include assembling data into a frame with address and error-detection fields for transmission, dissembling frames and performing address identification and error detection on reception, and controlling access to the physical layer. The LLC layer may include functions such as interfacing to higher layers and performing flow and error control.
In addition to dealing with the interfacing of various vendor equipment, communication networks, for example computer networks, must deal with errors during data transmission in the communication channels of the network. A communication channel, whether it is a fiber optic channel, a co-axial channel, a wired channel, a wireless channel, or a bus connecting locations in a system over which large amounts of data are transferred, can add noise and error to information being transmitted over the channel. Various techniques may be used to deal with errors in data transmission. One approach is to use forward error correction (FEC) on a physical layer of the communication network. Another approach is to use automatic repeat requests (ARQ) on a data link layer of the communications network.
To correct for errors added by the communication channel, information can be sent in the form of codewords, where each codeword contains the same number of total bits and in which a number of the bits are information (message) bits and a number of bits are used for error correction. A codeword having a length of n bits includes k bits for the message length of the code and r=n−k redundant bits. The r bits are for error correction. To move to errorless data transmission, the error correcting capabilities of the code may be increased by using code redundancy. Alternatively, a large number of retransmission can be used. Either approach can add complexity to the communication process. However, there are cases of latency critical communications (real time audio and video), where the maximum data delay is limited, and the ARQ are either not allowed, or the maximum number of possible ARQ is strictly predefined. In high speed data communication what is needed is a reliable scheme that provides information with as few errors as possible, but at the same time can be implemented without a significant amount of complexity.